I. Technical Field
The present invention generally relates to the field of data processing and to systems and methods for generating technical documentation. More particularly, the invention relates to computerized systems and methods for generating technical documentation from, for example, enterprise service-oriented architecture (SOA) content.
II. Background Information
In an enterprise, the term “service-oriented architecture” (SOA) refers to an architecture that provides a collection of services that may communicate with each other. A “service” is a programmable, self-contained, self-describing, modular application function that can be published, discovered, or invoked through an open Internet standard. Each service is typically self-contained and the services are made available to users in the enterprise via a distributed system architecture. The services may be, for example, Web based and available over Internet protocols. Furthermore, the services that are provided in an enterprise SOA are typically defined in a standardized, but technical manner. That is, the services are defined using a particular programming language, such as the Web-Service Definition Language (WSDL). WSDL is an XML format that describes services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information.
In languages such as WSDL, the operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (i.e., the “services”). WSDL is extensible in order to provide a description of endpoints and their messages regardless of what message formats or network protocols are used to communicate. Accordingly, WSDL is an example of a XML (eXtensible Markup Language) Service Definition (XSD) format.
Using the WSDL language to define services provides a powerful and effective tool. However, the WSDL language is not easily readable by humans. As a result, programmers must prepare technical documentation in order to describe and explain the service interfaces to other programmers. An enterprise might prepare technical documentation using word processing software (e.g., Microsoft Word documents), spreadsheets (e.g., Microsoft Excel sheets), or flow diagrams (e.g., Visio files), for example. The process of generating the documentation is time consuming because the documentation is prepared from scratch. Moreover, since services may evolve over time, programmers must update the documentation because, in order for programmers to easily understand and efficiently update content, documentation is needed that accurately reflects the current content that is being used by an enterprise.
Furthermore, when building enterprise SOA services, the services must be standardized. To maintain consistency between services, the technical documentation must be updated regularly when requirements change and a service is updated. Services must also be controlled such that services are not made available until proper technical documentation has been prepared. For example, an enterprise that stores content in an Enterprise Service Repository (ESR) might require technical documentation in multiple formats (e.g., Word, Excel, and Visio) to be prepared for each service before it can be implemented in the ESR. Often, since the technical documentation is prepared in multiple formats, the documentation contains redundant data. Moreover, manually preparing and continually updating the technical documentation is a time consuming and error-prone process.
Therefore, conventional techniques for manually preparing and updating technical documentation suffer from one or more drawbacks, such as those highlighted above. In view of the foregoing, there is a need for improved systems and methods for automatically generating technical documentation from enterprise SOA content.